from BaiduImageSpider import BaiduImageSpider
from tkinter import *
from tkinter import filedialog
from PIL import Image
from wxpy import *
import requests
from utils import Utils





# 初始化机器人，扫码登陆
bot = Bot(cache_path=True)
tuling = Tuling(api_key='2fd9fbd223044e1a84821bfb7a9ba551')
my_friends = bot.friends(update=False)
#打印自己好友信息
print(my_friends.stats_text())

#筛选出来一个好友
my_friend = my_friends.search(u"祖宗要秒回")[0]
print(my_friend)

my_groups = bot.groups().search('XC')
print(my_groups)
# region



# 判断是否转换二维码
def is_qrcode(msg):
    msgContent=Utils.remove_at(msg)
    # 判断是否有保存图片
    if len(msgContent.split("转换成二维码")) > 1:
        msg.reply("正在生成二维码..")
        msg.reply_image(Utils.text_to_qrcode(msgContent.split("转换成二维码")[0], msg.sender.name))
        return True
    # 判断是否有保存图片
    elif len(msg.text.split("二维码")) > 1:
        msg.reply("生成二维码方法：XXXX转换成二维码")
        return True
    else:
        return False

# 判断是否搜索图片
def is_search_img(msg):
    msgContent=Utils.remove_at(msg)
    # 判断是否有保存图片
    if len(msgContent.split("图片")) > 1:
        msg.reply("正在搜寻图片..")
        search_img(msgContent.split("图片")[0],msg)
        return True
    elif len(msgContent.split("照片")) > 1:
        msg.reply("正在搜寻照片..")
        search_img(msgContent.split("照片")[0],msg)
        return True
    else:
        return False

# 搜索图片
def search_img(keyword, msg):
    spider = BaiduImageSpider()
    spider.searchKey=keyword
    msg.reply_image(spider.run())
    return True

# 转发消息到文件助手
def forward_reply(msg):
    if msg.member:
        msg.forward(bot.file_helper, prefix='群组:\n' + msg.chat.name + '\n用户:\n' + msg.member.name + '\n发送内容:\n')
    else:
        msg.forward(bot.file_helper, prefix='用户:\n' + msg.chat.name + '\n发送内容:\n')

# 回复 my_friend 发送的消息
@bot.register(my_friend)
def reply_my_friend(msg):
    if is_qrcode(msg):
        return
    if is_search_img(msg):
        return
    tuling.do_reply(msg)
    # 分割字符串
    #imgKey=msg.text.replace(f"@{bot.self.name}", "").split("图片")[0]

# 回复发送给自己的消息，可以使用这个方法来进行测试机器人而不影响到他人
@bot.register(bot.self, except_self=False)
def reply_self(msg):
    print(f"触发自己发送的\n{str(msg.text)}\n")
    tuling.do_reply(msg)

# 打印出所有群聊中@自己的文本消息，并自动回复
@bot.register(Group, TEXT)
def print_group_msg(msg):
    if msg.is_at:
        print(f"触发被@\n{str(Utils.remove_at(msg))}\n")
        if is_qrcode(msg):
            return
        if is_search_img(msg):
            return
        tuling.do_reply(msg)
        # forward_reply(msg)
    else:
        print(f"正常监听群组\n{str(msg)}\n" )
        # if is_qrcode(msg):
        #     return
        # if is_search_img(msg):
        #     return
        # tuling.do_reply(msg)
        # tuling.do_reply(msg)
        # forward_reply(msg)

# except_self 是否筛选自己
@bot.register(except_self=False)
def print_others(msg):
    print(f"1正常监听\n{str(msg)}\n")

    if is_qrcode(msg):
        return
    if is_search_img(msg):
        return
    tuling.do_reply(msg)

    #return

bot.join()
#embed()
